from launch import LaunchDescription
from launch_ros.actions import Node
from ament_index_python.packages import get_package_share_directory
import os

def generate_launch_description():
    pkg_dir = get_package_share_directory('hero_integrated_vision')
    
    # 拼接参数文件（hero.xml）的绝对路径
    params_file = os.path.join(
        pkg_dir,
        'config',  
        'hero.yaml'
    )
    
    # 检查参数文件是否存在
    if not os.path.exists(params_file):
        raise FileNotFoundError(f"参数文件不存在: {params_file}")

    # 定义节点启动动作
    hero_vision_node = Node(
        package='hero_integrated_vision',  # 功能包名称
        executable='hero_integrated_vision_node',     # 节点可执行文件名（需与CMakeLists.txt中安装的一致）
        name='hero_vision_node',           # 节点名称（可自定义）
        output='screen',                   # 日志输出到终端
        parameters=[params_file]           # 从yaml文件加载参数
    )

    # 构建Launch描述
    return LaunchDescription([
        hero_vision_node
    ])